今天想分享做出TextView中的超連結的方法
這樣如果要加入超連結到演員的名字上面或是電影的相關詳細細節都可以在另外開一個網頁處理
新增一個TextView到上面,將Delegate指派完成
@IBOutlet weak titleTextView: UITextView! {
didSet{
titleTextView.delegate = self
let attributes = [
NSMutableAttributedString.Key.underlineStyle : NSUnderlineStyle.single.rawValue,
]
let attributesString = NSMutableAttributedString(string: "今日推薦", attributes: attributes)
attributesString.addAttributes([NSMutableAttributedString.Key.link : "https://www.google.com"], range: NSRange(location: 2, length: 2))
titleTextView.attributedText = attributesString
}
}
如果需要單獨新增link字樣的樣式,可以使用linkAttribute來設定
titleTextView.linkAttributes = ...
extension ExampleViewController: UITextViewDelegate {
func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool {
// 按下這個link之後需要做的動作
return false
}
}
坑:
之前在做link觸碰的時候,因為不知道有linkAttributes的設定可以使用,一直在弄一般的Attributes搞的設定link字樣的顏色都是錯誤的,搞了很久才搞定。